#ifndef GAME_H
#define GAME_H

#include "Player.hh"
#include "Room.hh"
#include <vector>
#include <string>

class Game {
private:
    Player* player;
    std::vector<Room*> rooms;
    Room* currentRoom;
    bool gameOver;
    bool playerWon;

    // Initialize the game world
    void initializeRooms();

    // Game menus and commands
    void showMenu() const;
    void processCommand(int choice);

    // Game action
    void move(const std::string& direction);
    void takeItem(int itemIndex);
    void attackEnemy(int enemyIndex);
    void viewInventory() const;
    void viewStats() const;

    // Clear screen function
    void clearScreen() const;

public:
    Game(const std::string& playerName);
    ~Game();

    void run();

    bool isGameOver() const;
    bool hasPlayerWon() const;
};

#endif // GAME_H
